package com.zsrt.java.ex;

import static org.junit.Assert.*;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStreamReader;

import org.junit.Test;

/**
 * 通过File类实现输出一个指定目录下包括的所有文件名，包含子目录 递归
 * 
 * @author My
 *
 */
public class TestMo {
	
	public static void list(File f){
		if(f.isFile()==true){
			//是文件打印文件路径和名称
			System.out.println(f.getAbsolutePath()+f.getName());
		}else{
//			如果不是文件 那就是文件夹 列出文件夹下的每个文件
			File files[]=f.listFiles();
			for(int i=0;i<files.length;i++){
				File f1=files[i];
				list(f1);
			}
		}
	}
	
	
	@Test
	public void BuffTest() throws Exception {
		
		FileInputStream fis=new FileInputStream(new File("c://A.txt"));
		BufferedInputStream bis=new BufferedInputStream(fis);
			System.out.println((char)bis.read());
		
	}
	
	@Test
	public void TestBufferedReader() throws Exception {
		
		File file=new File("C://A.txt");
		BufferedReader br=new BufferedReader(new FileReader(file));
		String line="";
		while((line=br.readLine())!=null){
			System.out.println(line);
		}
		br.close();
		
		
		try {
			BufferedReader b=new BufferedReader(new InputStreamReader(System.in));
			System.out.println("输入你要输入的文字");
			String s=b.readLine();
			while(s!=null && !s.equals("end")){
				System.out.println("你输入的是："+s);
				s=b.readLine();
				
			}
			b.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	@Test
	public void TestCopy() throws Exception {
		
		File f1=new File("C://A.TXT");
		File f2=new File("C://b.TXT");
		
		//输入流 去读A。txt的文件内容
		FileInputStream fis=new FileInputStream(f1);
		//输出流 往B。txt的文件写内容
		FileOutputStream fos=new FileOutputStream(f2);
		//刻度 1024字节
		byte b[]=new byte[1024];
		int count=0;
		//读取1024字节 只到文件末尾
		while((count=fis.read(b) ) !=-1){
			fos.write(b, 0, count);
		}
		
		fis.close();
		fos.close();
		
		
		
	}
	
	


}
